home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Boolean BOOLEAN001
- Boolean BOOLEAN002
- Boolean BOOLEAN003
- Boolean BOOLEAN004
- Integer INTEGER001
- Integer INTEGER002
- Integer INTEGER003
- Integer TINTEGER004(9)
- Integer INTEGER005
- Integer INTEGER006
- Integer INTEGER007
- Integer INTEGER008
- Integer INTEGER009
- Integer INTEGER010
- Integer TINTEGER011(9)
- Integer TINTEGER012(9)
- String STRING001
- String TSTRING002(14)
- String TSTRING003(9)
- String STRING004
- String STRING005
- String TSTRING006(9)
- String STRING007
- String STRING008
- String STRING009
- String STRING010
- String TSTRING011(37)
- String STRING012
- String STRING013
-
- ;------------------------------------------------------------------------------
-
- FOpen 1, PPEPath() + "promat.cnf", 0, 0
- For INTEGER009 = 1 To 14
- FGet 1, TSTRING002(INTEGER009)
- TSTRING002(INTEGER009) = Upper(TSTRING002(INTEGER009))
- Next
- FClose 1
- INTEGER008 = 1 + Random(TSTRING002(2) - 1)
- STRING008 = "■ ProMatrix: "
- KeyFlush
- STRING013 = Upper(ReadLine(PCBDat(), 2) + ReadLine(PCBDat(), 94))
- INTEGER005 = ReadLine(PCBDat(), 149)
- INTEGER007 = 1
- For INTEGER009 = 1 To Len(STRING013) Step 2
- INTEGER007 = Left(INTEGER007 * Asc(Mid(STRING013, INTEGER009, 1)), 6)
- Next
- FOpen 1, PPEPath() + "strings.dat", 0, 0
- For INTEGER009 = 1 To 37
- FGet 1, TSTRING011(INTEGER009)
- Next
- FClose 1
- If (OnLocal()) Then
- STRING013 = "Local"
- Else
- STRING013 = Carrier()
- Endif
- FAppend 2, PPEPath() + "promat" + String(PcbNode()) + ".log", 1, 0
- FPutLn 2, "**************************************************************"
- FPutLn 2, String(Date()) + " (" + String(Time()) + ") (" + String(PcbNode()) + ") USER AT MATRIX (" + STRING013 + ") (" + GrafMode() + ")"
- If (Carrier() < TSTRING002(12)) Then
- FPutLn 2, " Active Event (LOWBAUD)"
- OpText TSTRING002(12)
- INTEGER006 = 34
- Gosub LABEL026
- Newline
- INTEGER006 = 35
- Gosub LABEL026
- InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
- Newline
- If (Upper(STRING009) <> TSTRING002(13)) Then
- FPutLn 2, " - Password Failure (" + Upper(STRING009) + ")"
- INTEGER006 = 36
- Gosub LABEL026
- BOOLEAN004 = 1
- BOOLEAN003 = 1
- Goto LABEL001
- Endif
- FPutLn 2, " - Entered Correct Password"
- INTEGER006 = 37
- Gosub LABEL026
- :LABEL001
- Newline
- Wait
- Endif
- If ((Time() > ToTime(TSTRING002(8))) && (Time() < ToTime(TSTRING002(9)))) Then
- FPutLn 2, " Active Event (TIMESLOT)"
- INTEGER006 = 30
- Gosub LABEL026
- Newline
- INTEGER006 = 31
- Gosub LABEL026
- InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
- Newline
- If (Upper(STRING009) <> TSTRING002(7)) Then
- FPutLn 2, " - Password Failure (" + Upper(STRING009) + ")"
- OpText TimeAp(TSTRING002(9))
- INTEGER006 = 32
- Gosub LABEL026
- BOOLEAN004 = 1
- BOOLEAN003 = 1
- Goto LABEL002
- Endif
- FPutLn 2, " - Entered Correct Password"
- INTEGER006 = 33
- Gosub LABEL026
- :LABEL002
- Newline
- Wait
- Endif
- Gosub LABEL027
- FPutLn 2, " ProMatrix Initialized"
- :LABEL003
- If (BOOLEAN004) Goto LABEL022
- Gosub LABEL030
- KeyFlush
- While (STRING004 <> Chr(13)) Do
- If (ScrText(3, 1, 9, 0) <> "ProMatrix") Gosub LABEL030
- STRING004 = Left(Lower(Inkey()), 1)
- If (InStr("drz" + Chr(9), STRING004) <> 0) Then
- Gosub LABEL024
- Inc INTEGER002
- If (INTEGER002 == INTEGER001) INTEGER002 = 0
- Gosub LABEL023
- Continue
- Endif
- If (InStr("ulas", STRING004) <> 0) Then
- Gosub LABEL024
- Dec INTEGER002
- If (INTEGER002 == -1) INTEGER002 = INTEGER001 - 1
- Gosub LABEL023
- Continue
- Endif
- If (STRING004 == "]") Then
- Inc INTEGER008
- If (INTEGER008 > TSTRING002(2)) INTEGER008 = 1
- FPutLn 2, " Changed Matrix to (" + String(INTEGER008) + ")"
- Gosub LABEL027
- Gosub LABEL030
- Continue
- Endif
- If (STRING004 == "[") Then
- Dec INTEGER008
- If (INTEGER008 < 1) INTEGER008 = TSTRING002(2)
- FPutLn 2, " Changed Matrix to (" + String(INTEGER008) + ")"
- Gosub LABEL027
- Gosub LABEL030
- Endif
- EndWhile
- DefColor
- STRING009 = ""
- STRING005 = ""
- If (Lower(TSTRING003(INTEGER002)) == "logon") Then
- FPutLn 2, " Attempting LOGON"
- If (TSTRING002(3) <> "NONE") Then
- INTEGER006 = 1
- Cls
- Gosub LABEL026
- InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
- Newline
- If (Upper(STRING009) == TSTRING002(3)) Then
- FPutLn 2, " - Proceeding to BBS"
- INTEGER006 = 3
- Gosub LABEL026
- BOOLEAN004 = 1
- Goto LABEL004
- Endif
- FPutLn 2, " - System Password Failure (" + Upper(STRING009) + ")"
- INTEGER006 = 2
- Gosub LABEL026
- Inc INTEGER003
- Log STRING008 + "Failed Logon, tried (" + STRING009 + ")", 0
- :LABEL004
- Gosub LABEL025
- Goto LABEL005
- Endif
- FPutLn 2, " - System Password is DISABLED"
- BOOLEAN004 = 1
- :LABEL005
- Goto LABEL021
- Endif
- If (Lower(TSTRING003(INTEGER002)) == "apply") Then
- FPutLn 2, " Attempting APPLY"
- INTEGER006 = 4
- Cls
- Gosub LABEL026
- InputStr " _", STRING005, 0, 25, Mask_Pwd(), 0
- Newline
- If (STRING005 <> "") Then
- INTEGER010 = U_RecNum(Upper(STRING005))
- If (INTEGER010 < 1) Then
- If (Exist(PPEPath() + "carpet.red")) Then
- FOpen 1, PPEPath() + "carpet.red", 0, 0
- :LABEL006
- If (Ferr(1)) Goto LABEL007
- FGet 1, STRING013
- If (Upper(STRING013) == Upper(STRING005)) Then
- TSTRING002(4) = "NONE"
- FPutLn 2, " - User exists in CARPET.RED (" + Upper(STRING005) + ")"
- Endif
- Goto LABEL006
- :LABEL007
- FClose 1
- Endif
- If (TSTRING002(4) == "NONE") Then
- FPutLn 2, " - New User Password is DISABLED"
- INTEGER006 = 7
- Gosub LABEL026
- Gosub LABEL025
- BOOLEAN004 = 1
- KbdStuff STRING005 + Chr(13)
- Goto LABEL008
- Endif
- INTEGER006 = 6
- Gosub LABEL026
- InputStr " _", STRING009, 0, 25, Mask_Pwd(), 0
- Newline
- If (Upper(STRING009) == TSTRING002(4)) Then
- FPutLn 2, " - New User Password CORRECT"
- INTEGER006 = 9
- Gosub LABEL026
- Gosub LABEL025
- BOOLEAN004 = 1
- KbdStuff STRING005 + Chr(13)
- Goto LABEL008
- Endif
- FPutLn 2, " - New User Password Failure (" + Upper(STRING009) + ")"
- INTEGER006 = 8
- Gosub LABEL026
- Inc INTEGER003
- Log STRING008 + "Failed Apply, tried (" + STRING009 + ")", 0
- Gosub LABEL025
- :LABEL008
- Goto LABEL009
- Endif
- FPutLn 2, " - User Already Exists (" + Upper(STRING005) + ")"
- INTEGER006 = 5
- Gosub LABEL026
- Gosub LABEL025
- Endif
- :LABEL009
- Goto LABEL021
- Endif
- If (Lower(TSTRING003(INTEGER002)) == "check") Then
- FPutLn 2, " Attempting CHECK"
- Cls
- If (TSTRING002(3) <> "NONE") Then
- INTEGER006 = 10
- Gosub LABEL026
- InputStr " _", STRING005, 0, 25, Mask_Pwd(), 0
- FPutLn 2, " - Username (" + Upper(STRING005) + ")"
- Newline
- If (STRING005 <> "") Then
- INTEGER010 = U_RecNum(Upper(STRING005))
- If (INTEGER010 < 1) Then
- FPutLn 2, " - User Doesn't Exist"
- INTEGER006 = 11
- Gosub LABEL026
- Inc INTEGER003
- Log STRING008 + "Failed Check, tried (" + STRING005 + ")", 0
- Gosub LABEL025
- Goto LABEL013
- Endif
- INTEGER006 = 12
- Gosub LABEL026
- InputStr " _", STRING009, 0, 12, Mask_Pwd(), 1
- Newline
- GetAltUser INTEGER010
- If (Upper(STRING009) == Upper(U_Pwd)) Then
- If (U_Sec < INTEGER005) Then
- FPutLn 2, " - User is DELETED"
- INTEGER006 = 19
- Gosub LABEL026
- Gosub LABEL025
- BOOLEAN004 = 1
- BOOLEAN003 = 1
- Goto LABEL011
- Endif
- If (U_Sec < TSTRING002(5)) Then
- FPutLn 2, " - User is a NEWUSER"
- If (TSTRING002(10) == "YES") Then
- FPutLn 2, " - Passing Control to PROVOTE for voting stats"
- INTEGER006 = 14
- Gosub LABEL026
- Gosub LABEL025
- KbdStuff STRING005 + Chr(13)
- BOOLEAN004 = 1
- Goto LABEL010
- Endif
- Inc INTEGER003
- INTEGER006 = 18
- Gosub LABEL026
- Gosub LABEL025
- :LABEL010
- Goto LABEL011
- Endif
- FPutLn 2, " - User is VALIDATED"
- OpText TSTRING002(3)
- INTEGER006 = 15
- Gosub LABEL026
- Newline
- INTEGER006 = 17
- Gosub LABEL026
- InputYN " _", STRING013, 7
- Newline
- If (STRING013 == YesChar()) Then
- KbdStuff STRING005 + Chr(13)
- BOOLEAN004 = 1
- Endif
- :LABEL011
- Goto LABEL012
- Endif
- FPutLn 2, " - Password Failure (" + Upper(STRING009) + ")"
- INTEGER006 = 13
- Gosub LABEL026
- Inc INTEGER003
- Log STRING008 + "Failed Check, tried (" + STRING005 + "," + STRING009 + ")", 0
- Gosub LABEL025
- :LABEL012
- PutUser
- Endif
- :LABEL013
- Goto LABEL014
- Endif
- FPutLn 2, " - System Password is DISABLED"
- INTEGER006 = 16
- Gosub LABEL026
- Gosub LABEL025
- :LABEL014
- Goto LABEL021
- Endif
- Select Case (Lower(TSTRING003(INTEGER002)))
- Case "feedback"
- FPutLn 2, " Attempting FEEDBACK"
- AdjTime TSTRING002(14)
- Cls
- OpText ReadLine(PCBDat(), 2)
- INTEGER006 = 21
- Gosub LABEL026
- Newline
- INTEGER006 = 22
- Gosub LABEL026
- InputStr " _", STRING005, 0, 25, Mask_Pwd(), 0
- Newline
- If (STRING005 <> "") Then
- INTEGER006 = 23
- Gosub LABEL026
- InputStr " _", STRING012, 0, 25, Mask_Pwd(), 0
- Newline
- If (STRING012 <> "") Then
- INTEGER006 = 24
- Gosub LABEL026
- Newline
- INTEGER006 = 25
- Gosub LABEL026
- Newline
- FCreate 1, PPEPath() + "feedback." + String(PcbNode()), 1, 0
- Color 7
- BOOLEAN002 = 0
- STRING007 = ""
- STRING001 = ""
- :LABEL015
- If (BOOLEAN002) Goto LABEL019
- STRING001 = Inkey()
- If ((STRING001 == "/") && (Len(STRING007) == 0)) Then
- Print "@X07Command @X08(@X0F?@X07=@X0FHelp@X08)@X07 : "
- STRING001 = ""
- While ((STRING001 == "")) STRING001 = Upper(Inkey())
- If (STRING001 == "S") Then
- FPutLn 2, " - Feedback Sent by " + Upper(STRING005)
- PrintLn "Save"
- BOOLEAN001 = 1
- BOOLEAN002 = 1
- Goto LABEL016
- Endif
- If (STRING001 == "A") Then
- FPutLn 2, " - Feedback Aborted by " + Upper(STRING005)
- PrintLn "Abort"
- BOOLEAN001 = 0
- BOOLEAN002 = 1
- Goto LABEL016
- Endif
- If (STRING001 == "?") Then
- PrintLn "Help"
- Newline
- PrintLn " (S) : Save message"
- PrintLn " (A) : Abort message"
- PrintLn " (?) : This help screen"
- Newline
- Goto LABEL016
- Endif
- Print Chr(13)
- ClrEol
- :LABEL016
- Goto LABEL018
- Endif
- If ((Asc(STRING001) > 31) && (Len(STRING001) == 1)) Then
- STRING007 = STRING007 + STRING001
- If (Len(STRING007) < 79) Then
- Print STRING001
- Goto LABEL017
- Endif
- For INTEGER009 = Len(STRING007) To 1 Step -1
- If (Mid(STRING007, INTEGER009, 1) == " ") Then
- Backup Len(STRING007) - INTEGER009
- ClrEol
- STRING013 = Right(STRING007, Len(STRING007) - INTEGER009)
- STRING007 = Left(STRING007, INTEGER009 - 1)
- FPutLn 1, STRING007
- STRING007 = STRING013
- Newline
- Print STRING007
- INTEGER009 = 0
- Continue
- Endif
- If (INTEGER009 == 1) Then
- STRING007 = Left(STRING007, Len(STRING007) - 1)
- FPutLn 1, STRING007
- Newline
- Print STRING001
- STRING007 = STRING001
- Endif
- Next
- :LABEL017
- Goto LABEL018
- Endif
- If (STRING001 == Chr(13)) Then
- FPutLn 1, STRING007
- Newline
- STRING007 = ""
- Goto LABEL018
- Endif
- If ((STRING001 == Chr(8)) && (Len(STRING007) > 0)) Then
- STRING007 = Left(STRING007, Len(STRING007) - 1)
- Print Chr(8) + " " + Chr(8)
- Endif
- :LABEL018
- Goto LABEL015
- :LABEL019
- FPutLn 1, ""
- FPutLn 1, "@X08 ■ Via ProMatrix by ViGilante ■"
- FClose 1
- Newline
- If (BOOLEAN001) Then
- Message 0, Upper(ReadLine(PCBDat(), 2)), Upper(STRING005), STRING012, "R", 0, 0, 0, PPEPath() + "feedback." + String(PcbNode())
- INTEGER006 = 26
- Gosub LABEL026
- Gosub LABEL025
- Goto LABEL020
- Endif
- INTEGER006 = 27
- Gosub LABEL026
- Gosub LABEL025
- :LABEL020
- Delete PPEPath() + "feedback." + String(PcbNode())
- Endif
- Endif
- AdjTime -TSTRING002(14)
- Case "logoff"
- INTEGER006 = 28
- Cls
- Gosub LABEL026
- Newline
- BOOLEAN004 = 1
- BOOLEAN003 = 1
- Case Else
- FPutLn 2, " Executing External PPE (" + Upper(TSTRING003(INTEGER002)) + ")"
- Cls
- DispStr TSTRING003(INTEGER002)
- FPutLn 2, " Back From External PPE (" + Upper(TSTRING003(INTEGER002)) + ")"
- Gosub LABEL025
- End Select
- :LABEL021
- Goto LABEL003
- :LABEL022
- FPutLn 2, String(Date()) + " (" + String(Time()) + ") (" + String(PcbNode()) + ") USER OFF NORMALLY"
- FClose 2
- If (TSTRING002(11) <> "YES") Delete PPEPath() + "promat" + String(PcbNode()) + ".log"
- If (BOOLEAN003) Bye
- ResetDisp
- End
- :LABEL023
- STRING010 = ScrText(TINTEGER011(INTEGER002), TINTEGER012(INTEGER002), TINTEGER004(INTEGER002), 1)
- AnsiPos TINTEGER011(INTEGER002), TINTEGER012(INTEGER002)
- Print TSTRING006(INTEGER002)
- AnsiPos TINTEGER011(INTEGER002), TINTEGER012(INTEGER002)
- Return
- :LABEL024
- AnsiPos TINTEGER011(INTEGER002), TINTEGER012(INTEGER002)
- Print STRING010
- Return
- :LABEL025
- Newline
- Wait
- If ((INTEGER003 >= TSTRING002(6)) && (TSTRING002(6) <> 0)) Then
- FPutLn 2, " +++ Excessive Password Failures +++"
- Newline
- DispStr TSTRING011(29)
- Newline
- BOOLEAN004 = 1
- BOOLEAN003 = 1
- Endif
- Return
- :LABEL026
- DispStr TSTRING011(INTEGER006)
- StartDisp 1
- Return
- :LABEL027
- INTEGER001 = 0
- BOOLEAN002 = 0
- FOpen 1, PPEPath() + "matrix" + String(INTEGER008) + ".cnf", 0, 0
- :LABEL028
- If (BOOLEAN002) Goto LABEL029
- FGet 1, TSTRING003(INTEGER001)
- FGet 1, STRING013
- FGet 1, TSTRING006(INTEGER001)
- If ((TSTRING006(INTEGER001) == "") || Ferr(1)) Then
- BOOLEAN002 = 1
- Else
- Tokenize STRING013
- TINTEGER011(INTEGER001) = GetToken()
- TINTEGER012(INTEGER001) = GetToken()
- TINTEGER004(INTEGER001) = GetToken()
- FGet 1, STRING013
- Inc INTEGER001
- Endif
- Goto LABEL028
- :LABEL029
- FClose 1
- Return
- :LABEL030
- StartDisp 1
- DefColor
- Cls
- DispFile PPEPath() + "matrix" + String(INTEGER008) + ".pcb", 0
- AnsiPos 1, 1
- Color (Random(5) + 2) * 16 - 1
- Print " ProMatrix v1.1 by ViGilante Arrows,A,Z=Move C/R=Choice "
- If (TSTRING002(1) <> INTEGER007) Then
- AnsiPos 33, 1
- Color CurColor() + 128
- Print "<UNREGISTERED>"
- Endif
- STRING004 = ""
- INTEGER002 = 0
- Gosub LABEL023
- Return
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 1 End
- ; 7 Cls
- ; 2 ClrEol
- ; 3 Wait
- ; 3 Color
- ; 97 Goto
- ; 106 Let
- ; 10 Print
- ; 6 PrintLn
- ; 63 If
- ; 1 DispFile
- ; 1 FCreate
- ; 4 FOpen
- ; 1 FAppend
- ; 6 FClose
- ; 7 FGet
- ; 42 FPutLn
- ; 1 ResetDisp
- ; 2 StartDisp
- ; 1 PutUser
- ; 2 DefColor
- ; 2 Delete
- ; 2 AdjTime
- ; 4 Log
- ; 9 InputStr
- ; 1 InputYN
- ; 61 Gosub
- ; 6 Return
- ; 8 Inc
- ; 2 Dec
- ; 28 Newline
- ; 1 Tokenize
- ; 4 KbdStuff
- ; 1 Bye
- ; 4 OpText
- ; 3 DispStr
- ; 5 AnsiPos
- ; 1 Backup
- ; 1 Message
- ; 2 KeyFlush
- ; 1 GetAltUser
- ;
- ;
- ; ■ Functions used :
- ;
- ; 5 -
- ; 2 *
- ; 92 +
- ; 8 -
- ; 28 ==
- ; 15 <>
- ; 12 <
- ; 4 <=
- ; 4 >
- ; 9 >=
- ; 55 !
- ; 13 &&
- ; 5 ||
- ; 11 Len(
- ; 6 Lower()
- ; 27 Upper()
- ; 2 Mid()
- ; 5 Left()
- ; 1 Right()
- ; 2 Ferr()
- ; 11 Chr()
- ; 2 Asc()
- ; 2 InStr()
- ; 2 Random()
- ; 2 Date()
- ; 4 Time()
- ; 1 TimeAp()
- ; 1 YesChar()
- ; 3 Inkey()
- ; 15 String()
- ; 9 Mask_Pwd()
- ; 5 PCBDat()
- ; 11 PPEPath()
- ; 7 PcbNode()
- ; 5 ReadLine()
- ; 1 OnLocal()
- ; 3 GetToken()
- ; 1 Exist()
- ; 2 Carrier()
- ; 1 GrafMode()
- ; 1 CurColor()
- ; 2 U_RecNum()
- ; 2 ScrText()
- ; 2 ToTime()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : WRAdH
- ;
- ; W - Write user ■ 5
- ; Program writes a user record. Although this may be normal for a
- ; User Editor, it may also be a way to modify an account level.
- ; ■ Search for : PUTUSER
- ;
- ; R - Read user ■ 5
- ; User records are read, this may signify that someone wants to get
- ; various informations about a user (for example his password), but
- ; this may also be normal for a program accessing user records (for
- ; example a User Editor)
- ; ■ Search for : GETALTUSER
- ;
- ; A - Adjust online time remaining ■ 5
- ; Program modify the amount of online time remaining, this may
- ; be a way to bypass time limits
- ; ■ Search for : ADJTIME
- ;
- ; d - Access PCBOARD.DAT ■ 2
- ; Program gets the full pathname to PCBOARD.DAT, this may be usefull
- ; for many PPE so they can find various informations on the system
- ; (system paths, max number of lines in messages, ...) but it may also
- ; be a way to gather vital informations.
- ; ■ Search for : PCBDAT()
- ;
- ; H - Read Password or Password History ■ 5
- ; Program is reading the user's password or last password history
- ; This may be ok for a password manager, but it is very suspect. Check!
- ; ■ Search for : U_PWDHIST, U_PWD
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 4 For/Next
- ; 1 While/EndWhile
- ; 44 If/Then or If/Then/Else
- ; 1 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-